/**
 * Project Name:SerialOrder.java
 * File Name:SerialOrder.java
 * Date:2019-03-25 21:27
 * Copyright (c) 2019, zhang.xiangyu@foxmail.com All Rights Reserved.
 */
package com.meatball.order.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.databind.ser.std.DateSerializer;
import com.meatball.base.BaseEntity;
import lombok.Data;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.lang.NonNull;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Title: SerialOrder.java
 * @Description: todo(流水订单)
 * @Author: 張翔宇
 * @Date: 2019-03-25 21:27
 * @Version: V1.0
 */
@Data
@Document(value = "serial_order")
public class SerialOrder extends BaseEntity {
    /**
     * 订单编号
     */
    @NonNull
    private String blanketorderNo;

    /**
     * 油站id
     */
    private String oilStationId;

    /**
     * 班组id
     */
    private String squadId;

    /**
     * 班组执勤Id
     */
    private String dutyId;

    /**
     * 收银员ID
     */
    private String staffId;

    /**
     * 收银员名称
     */
    private String salesperson;

    /**
     * 是否临时会员，默认不是
     */
    private Boolean interim;

    /**
     * 会员id
     */
    private String memberId;

    /**
     * 会员名称
     */
    private String memberName;

    /**
     * 会员编号
     */
    private String memberNum;

    /**
     * 会员手机号
     */
    private String memberPhone;

    /**
     * 会员车牌号
     */
    private String memberCarNum;

    /**
     * 会员等级
     */
    private String memberCardName;

    /**
     * 油品金额
     */
    private BigDecimal oilMoney;

    /**
     * 商品金额
     */
    private BigDecimal proMoney;

    /**
     * 订单总额
     */
    private BigDecimal orderSum;

    /**
     * 总优惠
     */
    private BigDecimal discounts;

    /**
     * 优惠券优惠
     */
    private BigDecimal couponDis;

    /**
     * 油站优惠
     */
    private BigDecimal grantDis;

    /**
     * 实际支付
     */
    private BigDecimal copeWith;

    /**
     * 退款
     */
    private BigDecimal refundMoney;

    /**
     * 收款
     */
    private BigDecimal payAmount;

    /**
     * 找零
     */
    private BigDecimal returnMoney;

    /**
     * 积分
     */
    private Integer integral;

    /**
     * 支付信息ID
     */
    private String paymentId;

    /**
     * 支付编号
     */
    private String paymentNumber;

    /**
     * 支付种类
     */
    private Integer paymentType;

    /**
     * 支付方式
     */
    private Integer paymentMethod;

    /**
     * 订单来源
     */
    private Integer orderSource;

    /**
     * 订单生成时间
     */
    @JSONField(serializeUsing = DateSerializer.class)
    private Date orderGenerationTime;

    /**
     * 订单完成时间
     */
    @JSONField(serializeUsing = DateSerializer.class)
    private Date orderCompletionTime;

    /**
     * 订单描述
     */
    private String orderDesc;

    /**
     * 版本，0基础版，1减配版，2标准版
     */
    private Integer version;

    /**
     * 退款状态，0正常 1退款 2部分退款
     */
    private Integer refundSta;

    /**
     * 发票状态，0未开 1已开
     */
    private Integer invoiceSta;

    /**
     * 订单状态
     */
    private Integer blankSta;

    /**
     * 单号
     */
    private String orderNum;

    /**
     * 支付信息
     */
    private String payId;

    /**
     * 订单生成日期
     */
    @JSONField(serializeUsing = DateSerializer.class)
    private Date orderStarDate;

    /**
     * 订单完成日期
     */
    @JSONField(serializeUsing = DateSerializer.class)
    private Date orderEndDate;

    /**
     * 车牌号
     */
    private String carNum;

    /**
     * 充值类型
     * 0=平台，1=油站
     */
    private Integer payType;

    /**
     * 班组ID
     */
    private String teamId;

    /**
     * 执勤班组ID
     */
    private String dutyTeams;

    /**
     * 充值金额
     */
    private BigDecimal rechargeMoney;

    /**
     * 优惠金额
     */
    private BigDecimal discountAmount;

    /**
     * 应付
     */
    private BigDecimal payable;

    /**
     * 支付信息
     */
    private String payInfoId;

    /**
     * 状态(状态0:进行中1:待支付2:完成3:取消4:退款)
     */
    private Integer status;

    /**
     * 账户类型(40:通用账户41:汽油42:柴油43:CNG(天然气)
     */
    private Integer accountType;

    /**
     * 优惠信息
     */
    private String discountInfo;

    /**
     * 优惠信息描述
     */
    private String discountName;

    /**
     * 充值前余额
     */
    private BigDecimal rechargeOldMoney;

    /**
     * 充值后余额
     */
    private BigDecimal rechargeNewMoney;

    /**
     * 是否是新会员(0:不是 1:是)
     */
    private Integer isNewMember;

    /**
     * 描述
     */
    private String dsc;

    /**
     * 创建时间区间
     */
    @Transient
    private String createdTimeBw;
}
